﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Tradex.Trading {

    /// <summary>
    /// This enumeration defines the different event types that can happen to an Order.
    /// </summary>
    public enum OrderReportType {

        /// <summary>
        /// Undefined.
        /// </summary>
        None = 0,

        /// <summary>
        /// The order fill was reported as bust (a fill was in error).
        /// </summary>
        Bust = 1,

        /// <summary>
        /// The order was cancelled.
        /// </summary>
        Cancel = 2,

        /// <summary>
        /// The order failed.
        /// </summary>
        Fail = 3,

        /// <summary>
        /// The order was filled or partially filled..
        /// </summary>
        Fill = 4,

        /// <summary>
        /// The order was modified.
        /// </summary>
        Modify = 5,

        /// <summary>
        /// A cancel operation of the order failed. This can be because the cancel was, for example, issued after a fill.
        /// </summary>
        CancelFail = 6,

        /// <summary>
        /// An order update failed. This can be because the update was issued after a fill or cancel.
        /// </summary>
        UpdateFail = 7,

        /// <summary>
        /// The order was opened.
        /// </summary>
        Open = 8,

        /// <summary>
        /// The order was rejected.
        /// </summary>
        Reject = 9,

        /// <summary>
        /// The order was triggered.
        /// </summary>
        Trigger = 10,

        /// <summary>
        /// No freaking idea.
        /// </summary>
        Replay = 11
    }

}
